package com.gitee.huanminabc.jcommon.encryption;

//只能处理ASCII码范围内的字符 也就是 a-z A-Z 0-9 以及一些正常的符号 ,可以自行查询ASCII码表
public class OffsetCipher {
    public static String encrypt(String str, int offset) {
        StringBuilder result = new StringBuilder();
        for (char ch : str.toCharArray()) {
            int newCharCode = (int) ch + offset;
            // 如果超出ASCII范围，则回滚到ASCII范围内
            if (newCharCode > 127) {
                newCharCode -= 128;
            } else if (newCharCode < 0) {
                newCharCode += 128;
            }
            result.append((char) newCharCode);
        }
        return result.toString();
    }

    public static String decrypt(String str, int offset) {
        return encrypt(str, -offset); // 解密就是反向偏移
    }

}
